import { identityCodeValid, identityDir } from '@/libs/tools'
import dict from '@/libs/dict'
// import iViewThemes from 'iview-layout-themes'
// const xeUtils = iViewThemes.util.xeUtils

// 给数据加空的问题样式
export const addFlagHandle = (data) => {
  data.forEach(item => {
    item.cellClassName = {}
  })
  return data
}

// 校验身份证是否重复
export const uniqueIdcard = (data) => {
  data.filter((item, index, self) => {
    for (let i = index + 1; i < self.length; i++) {
      if (self[i].idcard === item.idcard) {
        item.cellClassName.idcard = 'trouble-cell-repeat'
        return true
      }
    }
    return false
  })
  return data
}
export const uniqueIdcard2 = (data) => {
  data.filter((item, index, self) => {
    for (let i = index + 1; i < self.length; i++) {
      if (self[i].card_no === item.card_no) {
        item.cellClassName.card_no = 'trouble-cell-repeat'
        return true
      }
    }
    return false
  })
  return data
}

// 档案导入数据校验处理
export const validateRecord = (data, RN) => {
  addFlagHandle(data)
  uniqueIdcard(data)
  data.forEach(item => {
    // 校验姓名
    if (!item.name) {
      item.name = ' （姓名不能为空）'
      item.cellClassName.name = 'trouble-cell'
    } else if (item.name.length > 20) {
      item.name = item.name + ' （姓名长度大于20个字符）'
      item.cellClassName.name = 'trouble-cell'
    }
    // 校验性别
    if (item.sex === undefined || item.sex === '') {
      item.sex = ' （性别为空）'
      item.cellClassName.sex = 'trouble-cell'
    } else if (dict.excelRecordSex.indexOf(item.sex.trim()) === -1) {
      item.sex = ' （性别内容错误）'
      item.cellClassName.sex = 'trouble-cell'
    }
    // 校验身份证号
    const idcardRtn = identityCodeValid(item.idcard)
    if (!idcardRtn.pass) {
      item.idcard = item.idcard + ' （' + idcardRtn.tip + '）'
      item.cellClassName.idcard = 'trouble-cell'
    }
    // 校验退休时间
    if (!item.tui_xiu_date) {
      item.tui_xiu_date = ' （退休时间不能为空）'
      item.cellClassName.tui_xiu_date = 'trouble-cell'
    } else if (!/^\d{4}$/.test(item.tui_xiu_date)) {
      item.tui_xiu_date = item.tui_xiu_date + ' （退休时间格式应为4位数字）'
      item.cellClassName.tui_xiu_date = 'trouble-cell'
    }
    // 校验养老保险编号
    if (item.yang_lao_no !== undefined && item.yang_lao_no.length > 50) {
      item.yang_lao_no = item.yang_lao_no + ' （养老保险编号过长）'
      item.cellClassName.yang_lao_no = 'trouble-cell'
    }
    // 校验社保中心
    if (item.she_bao_zhong_xin !== undefined && item.she_bao_zhong_xin.length > 50) {
      item.she_bao_zhong_xin = item.she_bao_zhong_xin + ' （社保中心名称过长）'
      item.cellClassName.she_bao_zhong_xin = 'trouble-cell'
    }
    // 校验隶属关系
    if (dict.excelRecordRelation.indexOf(item.li_shu_guan_xi.trim()) === -1) {
      item.li_shu_guan_xi = item.li_shu_guan_xi + ' （隶属关系内容错误）'
      item.cellClassName.li_shu_guan_xi = 'trouble-cell'
    }
    // 校验流水号
    if (!item.serial_number) {
      item.serial_number = ' （流水号不能为空）'
      item.cellClassName.serial_number = 'trouble-cell'
    } else if (item.serial_number.length > 10) {
      item.serial_number = ' （流水号长度大于10个字符）'
      item.cellClassName.serial_number = 'trouble-cell'
    }
    // 校验全宗号
    item.record_number = item.record_number.toString().toLowerCase()
    if (!item.record_number) {
      item.record_number = ' （全宗号不能为空）'
      item.cellClassName.record_number = 'trouble-cell'
    } else if (item.record_number.length > 10) {
      item.record_number = item.record_number + ' （全宗号长度大于10个字符）'
      item.cellClassName.record_number = 'trouble-cell'
    } else if (item.record_number !== RN) {
      item.record_number = item.record_number + ' （此全宗号与当前账号信息不符）'
      item.cellClassName.record_number = 'trouble-cell'
    }
    // else if (!/^[a-zA-Z0-9]*$/.test(item.record_number)) {
    //   item.record_number = item.record_number + ' （全宗号只能由英文和数字组成）'
    //   item.cellClassName.record_number = 'trouble-cell'
    // }
  })
  // console.log('传入record数据', data)
  return data
}
// 材料导入数据校验处理
export const validateMaterial = (data, RN) => {
  addFlagHandle(data)
  uniqueIdcard(data)
  data.forEach(item => {
    // 校验姓名
    if (!item.name) {
      item.name = ' （姓名不能为空）'
      item.cellClassName.name = 'trouble-cell'
    } else if (item.name.length > 20) {
      item.name = item.name + ' （姓名长度大于20个字符）'
      item.cellClassName.name = 'trouble-cell'
    }
    // 校验身份证号
    const idcardRtn = identityCodeValid(item.idcard)
    if (!idcardRtn.pass) {
      item.idcard = item.idcard + ' （' + idcardRtn.tip + '）'
      item.cellClassName.idcard = 'trouble-cell'
    }
    // 校验材料名称
    if (!item.title) {
      item.title = ' （材料名称不能为空）'
      item.cellClassName.title = 'trouble-cell'
    } else if (item.title.length > 40) {
      item.title = item.title + ' （材料名称长度大于40个字符）'
      item.cellClassName.title = 'trouble-cell'
    }
    // 校验文件夹地址（名称）
    const dirRtn = identityDir(item.dir)
    if (!dirRtn.pass) {
      item.dir = item.dir + ' （' + dirRtn.tip + '）'
      item.cellClassName.dir = 'trouble-cell'
    } else if (item.dir.length > 20) {
      item.dir = item.dir + ' （文件夹地址（名称）长度大于20个字符）'
      item.cellClassName.dir = 'trouble-cell'
    }
    // 校验文件夹中文件数
    if (!item.num) {
      item.num = ' （文件夹中文件数不能为空）'
      item.cellClassName.num = 'trouble-cell'
    } else if (!/^\d{1,5}$/.test(parseInt(item.num))) {
      item.num = item.num + ' （文件夹中文件数长度大于5位数）'
      item.cellClassName.num = 'trouble-cell'
    }
    // 校验流水号
    // if (!item.serial_number) {
    //   item.serial_number = ' （流水号不能为空）'
    //   item.cellClassName.serial_number = 'trouble-cell'
    // } else if (item.serial_number.length > 10) {
    //   item.serial_number = ' （流水号长度大于10个字符）'
    //   item.cellClassName.serial_number = 'trouble-cell'
    // }
    // 校验全宗号
    item.record_number = item.record_number.toString().toLowerCase()
    if (!item.record_number) {
      item.record_number = ' （全宗号不能为空）'
      item.cellClassName.record_number = 'trouble-cell'
    } else if (item.record_number.length > 10) {
      item.record_number = item.record_number + ' （全宗号长度大于10个字符）'
      item.cellClassName.record_number = 'trouble-cell'
    } else if (item.record_number !== RN) {
      item.record_number = item.record_number + ' （此全宗号与当前账号信息不符）'
      item.cellClassName.record_number = 'trouble-cell'
    }
    // else if (!/^[a-zA-Z0-9]*$/.test(item.record_number)) {
    //   item.record_number = item.record_number + ' （全宗号只能由英文和数字组成）'
    //   item.cellClassName.record_number = 'trouble-cell'
    // }
  })
  // console.log('传入material数据', data)
  return data
}
// 工作者导入数据校验处理
export const validateWorker = (data) => {
  addFlagHandle(data)
  uniqueIdcard2(data)
  data.forEach(item => {
    // 校验公司名称
    if (!item.work_name) {
      item.work_name = ' （公司名称不能为空）'
      item.cellClassName.work_name = 'trouble-cell'
    } else if (item.work_name.length > 30) {
      item.work_name = item.work_name + ' （公司名称长度大于30个字符）'
      item.cellClassName.work_name = 'trouble-cell'
    }
    // 校验公司编码
    if (item.work_no === undefined || item.work_no === '') {
      item.work_no = ' （公司编码为空）'
      item.cellClassName.work_no = 'trouble-cell'
    } else if (dict.excelWorkerNo.indexOf(item.work_no.trim()) === -1) {
      item.work_no = item.work_no + ' （公司编码内容错误）'
      item.cellClassName.work_no = 'trouble-cell'
    }
    // if (!item.work_no) {
    //   item.work_no = ' （公司编码不能为空）'
    //   item.cellClassName.work_no = 'trouble-cell'
    // } else if (item.work_no.length > 20) {
    //   item.work_no = item.work_no + ' （公司编码长度大于20个字符）'
    //   item.cellClassName.work_no = 'trouble-cell'
    // }
    // 校验所属网点
    if (item.belong && item.belong.length > 30) {
      item.belong = item.belong + ' （所属网点长度大于30个字符）'
      item.cellClassName.belong = 'trouble-cell'
    }
    // 校验网点地址
    if (item.address && item.address.length > 255) {
      item.address = item.address + ' （网点地址长度大于255个字符）'
      item.cellClassName.address = 'trouble-cell'
    }
    // 校验经度
    if (item.longitude && item.longitude.length > 30) {
      item.longitude = item.longitude + ' （经度长度大于30个字符）'
      item.cellClassName.longitude = 'trouble-cell'
    }
    // 校验纬度
    if (item.latitude && item.latitude.length > 30) {
      item.latitude = item.latitude + ' （纬度长度大于30个字符）'
      item.cellClassName.latitude = 'trouble-cell'
    }
    // 校验网店电话
    if (item.tel && item.tel.length > 20) {
      item.tel = item.tel + ' （网店电话长度大于20个字符）'
      item.cellClassName.tel = 'trouble-cell'
    }
    // 校验区域
    if (item.area && item.area.length > 20) {
      item.area = item.area + ' （区域长度大于20个字符）'
      item.cellClassName.area = 'trouble-cell'
    }
    // 校验类型
    if (item.type === undefined || item.type === '') {
      item.type = ' （类型为空）'
      item.cellClassName.type = 'trouble-cell'
    } else if (dict.excelWorkerType.indexOf(item.type.trim()) === -1) {
      item.type = item.type + ' （类型内容错误）'
      item.cellClassName.type = 'trouble-cell'
    }
    // 校验姓名
    if (!item.name) {
      item.name = ' （姓名不能为空）'
      item.cellClassName.name = 'trouble-cell'
    } else if (item.name.length > 20) {
      item.name = item.name + ' （姓名长度大于20个字符）'
      item.cellClassName.name = 'trouble-cell'
    }
    // 校验证件号码
    const idcardRtn = identityCodeValid(item.card_no)
    if (!idcardRtn.pass) {
      item.card_no = item.card_no + ' （' + idcardRtn.tip + '）'
      item.cellClassName.card_no = 'trouble-cell'
    }
    // 校验手机号
    // const phoneRtn = identityMobile(item.phone)
    // if (!phoneRtn) {
    //   item.phone = item.phone + ' （手机号格式不正确）'
    //   item.cellClassName.phone = 'trouble-cell'
    // }
    // 校验健康状态
    if (item.health_type === undefined || item.health_type === '') {
      item.health_type = ' （健康状态为空）'
      item.cellClassName.health_type = 'trouble-cell'
    } else if (dict.excelWorkerHealth.indexOf(item.health_type.trim()) === -1) {
      item.health_type = item.health_type + ' （健康状态内容错误）'
      item.cellClassName.health_type = 'trouble-cell'
    }
    // 校验户籍地（省）
    if (item.loc_province && item.loc_province.length > 20) {
      item.loc_province = item.loc_province + ' （户籍地（省）长度大于20个字符）'
      item.cellClassName.loc_province = 'trouble-cell'
    }
    // 校验户籍地（市）
    if (item.loc_city && item.loc_city.length > 20) {
      item.loc_city = item.loc_city + ' （户籍地（市）长度大于20个字符）'
      item.cellClassName.loc_city = 'trouble-cell'
    }
    // 校验人员状态
    if (item.person_type === undefined || item.person_type === '') {
      item.person_type = ' （人员状态为空）'
      item.cellClassName.person_type = 'trouble-cell'
    } else if (dict.excelWorkerPersonType.indexOf(item.person_type) === -1) {
      item.person_type = item.person_type + ' （人员状态内容错误）'
      item.cellClassName.person_type = 'trouble-cell'
    }
  })
  // console.log('传入工作者数据', data)
  return data
}
// 场所导入数据校验处理
export const validatePlace = (data) => {
  addFlagHandle(data)
  data.forEach(item => {
    // 校验场所名称
    if (!item.place_name) {
      item.place_name = ' （场所名称不能为空）'
      item.cellClassName.place_name = 'trouble-cell'
    } else if (item.place_name.length > 50) {
      item.place_name = item.place_name + ' （场所名称长度大于50个字符）'
      item.cellClassName.place_name = 'trouble-cell'
    }
    // 校验区、县（市）
    if (item.area && item.area.length > 20) {
      item.area = item.area + ' （区、县（市）长度大于20个字符）'
      item.cellClassName.area = 'trouble-cell'
    }
    // 校验街道
    if (item.street && item.street.length > 20) {
      item.street = item.street + ' （街道长度大于20个字符）'
      item.cellClassName.street = 'trouble-cell'
    }
    // 校验社区
    if (item.community && item.community.length > 20) {
      item.community = item.community + ' （社区长度大于20个字符）'
      item.cellClassName.community = 'trouble-cell'
    }
    // 校验场所地址
    if (!item.place_address) {
      item.place_address = ' （场所地址不能为空）'
      item.cellClassName.place_address = 'trouble-cell'
    } else if (item.place_address.length > 255) {
      item.place_address = item.place_address + ' （场所地址长度大于255个字符）'
      item.cellClassName.place_address = 'trouble-cell'
    }
    // 校验经度
    if (item.lat && item.lat.length > 20) {
      item.lat = item.lat + ' （经度长度大于20个字符）'
      item.cellClassName.lat = 'trouble-cell'
    }
    // 校验纬度
    if (item.lan && item.lan.length > 20) {
      item.lan = item.lan + ' （纬度长度大于20个字符）'
      item.cellClassName.lan = 'trouble-cell'
    }
    // 校验联系人姓名
    if (!item.name) {
      item.name = ' （联系人姓名不能为空）'
      item.cellClassName.name = 'trouble-cell'
    } else if (item.name.length > 20) {
      item.name = item.name + ' （联系人姓名长度大于20个字符）'
      item.cellClassName.name = 'trouble-cell'
    }
    // 校验联系电话
    if (!item.mobile) {
      item.mobile = ' （联系电话不能为空）'
      item.cellClassName.mobile = 'trouble-cell'
    } else if (item.mobile.length > 20) {
      item.mobile = item.mobile + ' （联系电话长度大于20个字符）'
      item.cellClassName.mobile = 'trouble-cell'
    }
    // 校验场所类别
    if (item.place_type && item.place_type.length > 20) {
      item.place_type = item.place_type + ' （场所类别长度大于100个字符）'
      item.cellClassName.place_type = 'trouble-cell'
    }
  })
  // console.log('传入场所数据', data)
  return data
}
// 办理数据校验处理
export const validateHandle = (data) => {
  addFlagHandle(data)
  uniqueIdcard2(data)
  data.forEach(item => {
    // 校验身份证号
    const idcardRtn = identityCodeValid(item.card_no)
    if (!idcardRtn.pass) {
      item.card_no = item.card_no + ' （' + idcardRtn.tip + '）'
      item.cellClassName.card_no = 'trouble-cell'
    }
    // 校验联系人姓名
    if (!item.name) {
      item.name = ' （联系人姓名不能为空）'
      item.cellClassName.name = 'trouble-cell'
    } else if (item.name.length > 20) {
      item.name = item.name + ' （联系人姓名长度大于20个字符）'
      item.cellClassName.name = 'trouble-cell'
    }
    // 校验联系电话
    if (item.mobile && item.mobile.length > 20) {
      item.mobile = item.mobile + ' （联系电话长度大于20个字符）'
      item.cellClassName.mobile = 'trouble-cell'
    }
  })
  // console.log('传入场所数据', data)
  return data
}
